﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;

namespace EDIConsole
{
	class Program
	{

		static void Main(string[] args)
		{
			PrjProperty.Itit();
			PrjProperty.Logs.WriteLogs("Запуск программы " + PrjProperty.Version);
			PrjProperty.Logs.WriteLogs(DateTime.Now.ToString());
			PrjProperty.Logs.WriteLogs("Чтение параметров params.xml");
			PrjProperty.LoadConfig("params.xml");
			PrjProperty.Logs.WriteLogs("Параметры прочитаны, имя клиента: " + PrjProperty.ClientName);
			//PrjProperty.SaveXMLParam("params.xml");
            // loop here forever
            bool isRunApp = true;

            PrjProperty.Logs.WriteLogs("Чтение параметров запуска");
            foreach (string arg in args)
            {
                PrjProperty.Logs.WriteLogs(arg);
                if (arg.ToLower() == "/run") isRunApp = true; //параметр по умаолчанию, можно запускать без него
                if (arg.ToLower() == "/once") isRunApp = false;
                if (arg.ToLower().IndexOf(".run") > -1)
                {
                    isRunApp = false;
                    PrjProperty.IsModeOpenFile = true;
                    PrjProperty.AddTask(arg);
                    PrjProperty.RunTaskAll();
                }
            }

            /* 
            isRunApp = false;
            PrjProperty.IsModeOpenFile = true;
            PrjProperty.AddTask("\\\\ms\\users\\!EDI\\Commands\\ORA_RunSQL.run");
            PrjProperty.RunTaskAll();
            */

            if (!PrjProperty.IsModeOpenFile)
            {
                Console.WriteLine("Creating timer: {0}\n",
                    DateTime.Now.ToString("h:mm:ss"));

                Timer timerReadTaskDir = new Timer(PrjProperty.ReadTaskDir, null, 0, 1000);
                Timer timerRunTask = new Timer(PrjProperty.RunTask, 5, 0, 2000);
            }
			
			if (isRunApp)
				for (; ; ) { }
		}
	}
}
